import request from '@/utils/request';
import type { PageResult, ResponseData } from '../typing';
// 参数接口
export interface GetClientManagementPageParams {
    /*当前第几页(默认1) */
    current?: number;
    /*每页条数(默认20) */
    size?: number;
    /*备注或昵称 */
    remarkAndNickname?: string;
    /*认证姓名 */
    certifierName?: string;
    /*关联项目Code */
    projectCodes?: Record<string, unknown>[];
    /*添加人姓名 */
    creatorName?: string;
    /*是否已绑定 */
    isBind?: boolean;
    /* */
    page?: {
        /* */
        records?: {
            /*企微客户ID */
            externalUserid?: string;
            /*企微客户姓名 */
            name?: string;
            /*企微客户头像 */
            avatar?: string;
            /*企微客户性别 */
            gender?: Record<string, unknown>;
            /*企微客户备注 */
            remark?: string;
            /*该成员添加此客户的来源 */
            addWay?: Record<string, unknown>;
            /*客户身份，1-业主，2-租户 */
            type?: Record<string, unknown>;
            /*绑定的资产数量 */
            numberOfAssets?: Record<string, unknown>;
            /*认证姓名 */
            certifierNames?: string;
            /*关联项目 */
            propertyRoom?: string;
            /*关联时间 */
            createTime?: string;
            /*创建人 */
            creator?: Record<string, unknown>;
            /*创建人姓名 */
            creatorName?: string;
            /*创建人部门 */
            creatorDeptName?: string;
        }[];
        /* */
        total?: Record<string, unknown>;
        /* */
        size?: Record<string, unknown>;
        /* */
        current?: Record<string, unknown>;
        /* */
        orders?: {
            /* */
            column?: string;
            /* */
            asc?: boolean;
        }[];
        /* */
        optimizeCountSql?: boolean;
        /* */
        searchCount?: boolean;
        /* */
        optimizeJoinOfCountSql?: boolean;
        /* */
        maxLimit?: Record<string, unknown>;
        /* */
        countId?: string;
        /* */
        pages?: Record<string, unknown>;
    };
}
// 响应接口
export interface GetClientManagementPageRes {
    /* */
    code: number;
    /* */
    data: {
        /* */
        size: number;
        /* */
        total: number;
        /* */
        current: number;
        /* */
        records: {
            /*企微客户ID */
            externalUserid: string;
            /*企微客户姓名 */
            name: string;
            /*企微客户头像 */
            avatar: string;
            /*企微客户性别 */
            gender: number;
            /*企微客户备注 */
            remark: string;
            /*该成员添加此客户的来源 */
            addWay: number;
            /*客户身份，1-业主，2-租户 */
            type: number;
            /*绑定的资产数量 */
            numberOfAssets: number;
            /*认证姓名 */
            certifierNames: string;
            /*关联项目 */
            propertyRoom: string;
            /*关联时间 */
            createTime: Record<string, unknown>;
            /*创建人 */
            creator: number;
            /*创建人姓名 */
            creatorName: string;
            /*创建人部门 */
            creatorDeptName: string;
        }[];
        /* */
        pages: number;
    };
    /* */
    msg: string;
}
/**
 * 获得企微客户和房产及租户关联分页
 * @param {object} params ClientManagementQuery
 * @param {number} params.current 当前第几页(默认1)
 * @param {number} params.size 每页条数(默认20)
 * @param {string} params.remarkAndNickname 备注或昵称
 * @param {string} params.certifierName 认证姓名
 * @param {array} params.projectCodes 关联项目Code
 * @param {string} params.creatorName 添加人姓名
 * @param {boolean} params.isBind 是否已绑定
 * @param {object} params.page
 * @returns
 */
export function getClientManagementPage(params: GetClientManagementPageParams): Promise<GetClientManagementPageRes> {
    return request.post(`/client/management/page`, params);
}
// 响应接口
export interface GetClientManagementDetailRes {
    /* */
    code: number;
    /* */
    data: {
        /*企微客户ID */
        externalUserid: string;
        /*企微客户姓名 */
        name: string;
        /*企微客户头像 */
        avatar: string;
        /*企微客户性别 */
        gender: number;
        /*企微客户备注 */
        remark: string;
        /*该成员添加此客户的来源 */
        addWay: number;
        /*客户身份，1-业主，2-租户 */
        type: number;
        /*绑定的资产数量 */
        numberOfAssets: number;
        /*认证姓名 */
        certifierNames: string;
        /*关联项目 */
        propertyRoom: string;
        /*关联时间 */
        createTime: Record<string, unknown>;
        /*创建人 */
        creator: number;
        /*创建人姓名 */
        creatorName: string;
        /*创建人部门 */
        creatorDeptName: string;
        /*企微客户身份证号 */
        idNumber: string;
        /*企微客户手机号 */
        mobile: string;
    };
    /* */
    msg: string;
}
/**
 * 获得企微客户详情
 * @param {string} external_userid
 * @returns
 */
export function getClientManagementDetail(external_userid: string): Promise<GetClientManagementDetailRes> {
    return request.get(`/client/management/client/detail?external_userid=${external_userid}`);
}
// 响应接口
export interface GetClientPropertyRenterRelationDetailRes {
    /* */
    code: number;
    /* */
    data: {
        /*开启成员ID */
        userid: string;
        /*外部联系人的userid */
        externalUserid: string;
        /*外部联系人头像 */
        avatar: string;
        /*外部联系人的名称 */
        name: string;
        /*该成员对此微信客户备注的企业名称（仅微信客户有该字段） */
        remark: string;
        /*外部联系人的类型，1表示该外部联系人是微信用户，2表示该外部联系人是企业微信用户 */
        type: number;
        /*外部联系人性别 0-未知 1-男性 2-女性 */
        gender: number;
        /*外部联系人性别 0-未知 1-男性 2-女性 */
        addWay: number;
        /*外部联系人的身份证号 */
        idNumber: string;
        /*外部联系人的联系方式 */
        mobile: string;
        /*绑定的资产信息 */
        propertyList: {
            /*房产信息表的ID */
            propertyId: number;
            /*项目Code */
            projectCode: string;
            /*项目名称 */
            projectName: string;
            /*楼号 */
            building: string;
            /*单元 */
            unit: string;
            /*楼层 */
            floor: string;
            /*房间 */
            room: string;
            /*类型:1->住宅,2->车位,3->别墅,4->商铺,5->商办,6->医疗,7->商业,8->院校 */
            type: string;
            /*管家ID */
            housekeeperId: string;
            /*管家名称 */
            housekeeper: string;
            /*业主姓名 */
            owner: string;
            /*业主手机号 */
            phone: string;
            /*绑定关系表ID */
            bindId: number;
            /*客户身份，1-业主，2-租户 */
            relationType: number;
            /*认证业主/租户姓名 */
            name: string;
            /*绑定人ID */
            creator: number;
            /*绑定人姓名 */
            creatorName: string;
            /*绑定时间 */
            bindTime: Record<string, unknown>;
        }[];
    };
    /* */
    msg: string;
}
/**
 * 获得企微客户和房产及租户关联详情
 * @param {string} externalUserid 企微客户ID
 * @returns
 */
export function getClientPropertyRenterRelationDetail(externalUserid: string): Promise<GetClientPropertyRenterRelationDetailRes> {
    return request.get(`/client/management/property/relation?externalUserid=${externalUserid}`);
}
